#pragma once

class EstadisticaPrueba;

template <class T>
class Puntero;

#include "Cadena.h"
#include "TipoRetorno.h"

class ManejadorImpresionPrueba
{
public:
	ManejadorImpresionPrueba();
	virtual ~ManejadorImpresionPrueba();

	void ImprimirResultado(TipoRetorno retorno, TipoRetorno retornoEsperado, Cadena comentario) const;
	void ImprimirTotalResultados(const Puntero<EstadisticaPrueba>& estadistica) const;

	bool operator==(const ManejadorImpresionPrueba& mip) const;

protected:
	void ImprimirComentario(Cadena comentario) const;
	void ImprimirRetorno(TipoRetorno retorno, TipoRetorno retornoEsperado) const;

private:
	Cadena GetStringRetorno(TipoRetorno retorno) const;

	Cadena cadERROR;
	Cadena cadOK;
	Cadena cadNO_IMPLEMENTADA;
};
